Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


meshchatx/src/frontend/libs/clickOutside.js master (b89dc9e6) Text, 5.81 KB

T8b949e// SPDX-License-Identifier: 0BSD

T8b949e/**
* Vue 3 click-outside directive and plugin.
* Compatible with the previous click-outside-vue3 binding shapes:
* v-click-outside="handler"
* v-click-outside="{ handler, middleware, events, isActive, detectIframe, capture }"
*/

Tff7b72const Te6edf3HANDLERS_PROPERTY Tff7b72= Ta5d6ff"__meshchatx_click_outside"Tb4b4b4;

Tff7b72const Te6edf3HAS_WINDOW Tff7b72= Tff7b72typeof Tffa657window Tff7b72!== Ta5d6ff"undefined"Tb4b4b4;
Tff7b72const Te6edf3HAS_NAVIGATOR Tff7b72= Tff7b72typeof Te6edf3navigator Tff7b72!== Ta5d6ff"undefined"Tb4b4b4;

Tff7b72const Te6edf3IS_TOUCH Tff7b72=
Te6edf3HAS_WINDOW Tff7b72&& Tb4b4b4(Ta5d6ff"ontouchstart" Tff7b72in Tffa657window Tff7b72|| Tb4b4b4(Te6edf3HAS_NAVIGATOR Tff7b72&& Tffa657NumberTb4b4b4(Te6edf3navigatorTb4b4b4.Te6edf3maxTouchPoints Tff7b72|| T79c0ff0Tb4b4b4) Tff7b72> T79c0ff0Tb4b4b4)Tb4b4b4)Tb4b4b4;

Tff7b72const Te6edf3DEFAULT_EVENTS Tff7b72= Te6edf3IS_TOUCH Tff7b72? Tb4b4b4[Ta5d6ff"touchstart"Tb4b4b4] Tff7b72: Tb4b4b4[Ta5d6ff"click"Tb4b4b4]Tb4b4b4;

T8b949e/**
* @param {unknown} bindingValue
*/
Tff7b72export Tff7b72function Te6edf3processDirectiveArgumentsTb4b4b4(Te6edf3bindingValueTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3isFunction Tff7b72= Tff7b72typeof Te6edf3bindingValue Tff7b72=== Ta5d6ff"function"Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3isFunction Tff7b72&& Tb4b4b4(Te6edf3bindingValue Tff7b72== Tff7b72null Tff7b72|| Tff7b72typeof Te6edf3bindingValue Tff7b72!== Ta5d6ff"object"Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff"v-click-outside: Binding value must be a function or an object"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3value Tff7b72= T8b949e/** @type {Record<string, unknown>} */ Tb4b4b4(Te6edf3isFunction Tff7b72? Tb4b4b4{Tb4b4b4} Tff7b72: Te6edf3bindingValueTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3handler Tff7b72= Te6edf3isFunction Tff7b72? Te6edf3bindingValue Tff7b72: Te6edf3valueTb4b4b4.Te6edf3handlerTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3handler Tff7b72!== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff"v-click-outside: handler must be a function"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Tb4b4b4{
Te6edf3handlerTb4b4b4,
Te6edf3middlewareTff7b72: Tff7b72typeof Te6edf3valueTb4b4b4.Te6edf3middleware Tff7b72=== Ta5d6ff"function" Tff7b72? Te6edf3valueTb4b4b4.Te6edf3middleware Tff7b72: Tb4b4b4(Te6edf3itemTb4b4b4) Tb4b4b4=> Te6edf3itemTb4b4b4,
Te6edf3eventsTff7b72: Tffa657ArrayTb4b4b4.Te6edf3isArrayTb4b4b4(Te6edf3valueTb4b4b4.Te6edf3eventsTb4b4b4) Tff7b72&& Te6edf3valueTb4b4b4.Te6edf3eventsTb4b4b4.Te6edf3length Tff7b72> T79c0ff0 Tff7b72? Te6edf3valueTb4b4b4.Te6edf3events Tff7b72: Te6edf3DEFAULT_EVENTSTb4b4b4,
Te6edf3isActiveTff7b72: Te6edf3valueTb4b4b4.Te6edf3isActive Tff7b72!== Tff7b72falseTb4b4b4,
Te6edf3detectIframeTff7b72: Te6edf3valueTb4b4b4.Te6edf3detectIframe Tff7b72!== Tff7b72falseTb4b4b4,
Te6edf3captureTff7b72: Tffa657BooleanTb4b4b4(Te6edf3valueTb4b4b4.Te6edf3captureTb4b4b4)Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}

T8b949e/**
* Compare bindings without JSON.stringify so function identity is preserved.
*
* @param {unknown} a
* @param {unknown} b
* @returns {boolean}
*/
Tff7b72export Tff7b72function Te6edf3bindingsEqualTb4b4b4(Te6edf3aTb4b4b4, Te6edf3bTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3a Tff7b72=== Te6edf3bTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3a Tff7b72=== Ta5d6ff"function" Tff7b72|| Tff7b72typeof Te6edf3b Tff7b72=== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3a Tff7b72=== Te6edf3bTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3a Tff7b72|| Tff7b72!Te6edf3b Tff7b72|| Tff7b72typeof Te6edf3a Tff7b72!== Ta5d6ff"object" Tff7b72|| Tff7b72typeof Te6edf3b Tff7b72!== Ta5d6ff"object"Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3left Tff7b72= T8b949e/** @type {Record<string, unknown>} */ Tb4b4b4(Te6edf3aTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3right Tff7b72= T8b949e/** @type {Record<string, unknown>} */ Tb4b4b4(Te6edf3bTb4b4b4)Tb4b4b4;
Tff7b72return Tb4b4b4(
Te6edf3leftTb4b4b4.Te6edf3handler Tff7b72=== Te6edf3rightTb4b4b4.Te6edf3handler Tff7b72&&
Te6edf3leftTb4b4b4.Te6edf3middleware Tff7b72=== Te6edf3rightTb4b4b4.Te6edf3middleware Tff7b72&&
Te6edf3leftTb4b4b4.Te6edf3isActive Tff7b72=== Te6edf3rightTb4b4b4.Te6edf3isActive Tff7b72&&
Te6edf3leftTb4b4b4.Te6edf3detectIframe Tff7b72=== Te6edf3rightTb4b4b4.Te6edf3detectIframe Tff7b72&&
Tffa657BooleanTb4b4b4(Te6edf3leftTb4b4b4.Te6edf3captureTb4b4b4) Tff7b72=== Tffa657BooleanTb4b4b4(Te6edf3rightTb4b4b4.Te6edf3captureTb4b4b4) Tff7b72&&
Tffa657JSONTb4b4b4.Te6edf3stringifyTb4b4b4(Te6edf3leftTb4b4b4.Te6edf3events Tff7b72?? Tff7b72nullTb4b4b4) Tff7b72=== Tffa657JSONTb4b4b4.Te6edf3stringifyTb4b4b4(Te6edf3rightTb4b4b4.Te6edf3events Tff7b72?? Tff7b72nullTb4b4b4)
Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {{ event: Event, handler: Function, middleware: Function }} args
*/
Tff7b72export Tff7b72function Te6edf3execHandlerTb4b4b4(Tb4b4b4{ Te6edf3eventTb4b4b4, Te6edf3handlerTb4b4b4, Te6edf3middleware Tb4b4b4}Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3middlewareTb4b4b4(Te6edf3eventTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3handlerTb4b4b4(Te6edf3eventTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}

T8b949e/**
* @param {{ el: Element, event: Event }} args
* @returns {boolean}
*/
Tff7b72export Tff7b72function Te6edf3isClickOutsideElementTb4b4b4(Tb4b4b4{ Te6edf3elTb4b4b4, Te6edf3event Tb4b4b4}Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3path Tff7b72=
Tff7b72typeof Te6edf3eventTb4b4b4.Te6edf3composedPath Tff7b72=== Ta5d6ff"function" Tff7b72? Te6edf3eventTb4b4b4.Te6edf3composedPathTb4b4b4(Tb4b4b4) Tff7b72: Tffa657ArrayTb4b4b4.Te6edf3isArrayTb4b4b4(Te6edf3eventTb4b4b4.Te6edf3pathTb4b4b4) Tff7b72? Te6edf3eventTb4b4b4.Te6edf3path Tff7b72: Tff7b72nullTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3pathTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3pathTb4b4b4.Te6edf3indexOfTb4b4b4(Te6edf3elTb4b4b4) Tff7b72< T79c0ff0Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3target Tff7b72= Te6edf3eventTb4b4b4.Te6edf3targetTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Tb4b4b4(Te6edf3target Tff7b72instanceof Te6edf3NodeTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4}
Tff7b72return Tff7b72!Te6edf3elTb4b4b4.Te6edf3containsTb4b4b4(Te6edf3targetTb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {{ el: Element, event: Event, handler: Function, middleware: Function }} args
*/
Tff7b72export Tff7b72function Te6edf3onFauxIframeClickTb4b4b4(Tb4b4b4{ Te6edf3elTb4b4b4, Te6edf3eventTb4b4b4, Te6edf3handlerTb4b4b4, Te6edf3middleware Tb4b4b4}Tb4b4b4) Tb4b4b4{
Te6edf3setTimeoutTb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Tb4b4b4{ Te6edf3activeElement Tb4b4b4} Tff7b72= Tffa657documentTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3activeElement Tff7b72&& Te6edf3activeElementTb4b4b4.Te6edf3tagName Tff7b72=== Ta5d6ff"IFRAME" Tff7b72&& Tff7b72!Te6edf3elTb4b4b4.Te6edf3containsTb4b4b4(Te6edf3activeElementTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3execHandlerTb4b4b4(Tb4b4b4{ Te6edf3eventTb4b4b4, Te6edf3handlerTb4b4b4, Te6edf3middleware Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {{ el: Element, event: Event, handler: Function, middleware: Function }} args
*/
Tff7b72export Tff7b72function Te6edf3onOutsideEventTb4b4b4(Tb4b4b4{ Te6edf3elTb4b4b4, Te6edf3eventTb4b4b4, Te6edf3handlerTb4b4b4, Te6edf3middleware Tb4b4b4}Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3isClickOutsideElementTb4b4b4(Tb4b4b4{ Te6edf3elTb4b4b4, Te6edf3event Tb4b4b4}Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3execHandlerTb4b4b4(Tb4b4b4{ Te6edf3eventTb4b4b4, Te6edf3handlerTb4b4b4, Te6edf3middleware Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {Element} el
* @param {{ value: unknown }} binding
*/
Tff7b72export Tff7b72function Te6edf3beforeMountTb4b4b4(Te6edf3elTb4b4b4, Tb4b4b4{ Te6edf3value Tb4b4b4}Tb4b4b4) Tb4b4b4{
Tff7b72const Tb4b4b4{ Te6edf3eventsTb4b4b4, Te6edf3handlerTb4b4b4, Te6edf3middlewareTb4b4b4, Te6edf3isActiveTb4b4b4, Te6edf3detectIframeTb4b4b4, Te6edf3capture Tb4b4b4} Tff7b72= Te6edf3processDirectiveArgumentsTb4b4b4(Te6edf3valueTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3isActiveTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}

Te6edf3elTb4b4b4[Te6edf3HANDLERS_PROPERTYTb4b4b4] Tff7b72= Te6edf3eventsTb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3eventNameTb4b4b4) Tb4b4b4=> Tb4b4b4(Tb4b4b4{
Te6edf3eventTff7b72: Te6edf3eventNameTb4b4b4,
Te6edf3srcTargetTff7b72: Tffa657documentTb4b4b4.Te6edf3documentElementTb4b4b4,
Te6edf3handlerTff7b72: Tb4b4b4(Te6edf3eventTb4b4b4) Tb4b4b4=> Te6edf3onOutsideEventTb4b4b4(Tb4b4b4{ Te6edf3elTb4b4b4, Te6edf3eventTb4b4b4, Te6edf3handlerTb4b4b4, Te6edf3middleware Tb4b4b4}Tb4b4b4)Tb4b4b4,
Te6edf3captureTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;

Tff7b72if Tb4b4b4(Te6edf3detectIframeTb4b4b4) Tb4b4b4{
Te6edf3elTb4b4b4[Te6edf3HANDLERS_PROPERTYTb4b4b4]Tb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4{
Te6edf3eventTff7b72: Ta5d6ff"blur"Tb4b4b4,
Te6edf3srcTargetTff7b72: Tffa657windowTb4b4b4,
Te6edf3handlerTff7b72: Tb4b4b4(Te6edf3eventTb4b4b4) Tb4b4b4=> Te6edf3onFauxIframeClickTb4b4b4(Tb4b4b4{ Te6edf3elTb4b4b4, Te6edf3eventTb4b4b4, Te6edf3handlerTb4b4b4, Te6edf3middleware Tb4b4b4}Tb4b4b4)Tb4b4b4,
Te6edf3captureTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}

Tff7b72for Tb4b4b4(Tff7b72const Te6edf3entry Tff7b72of Te6edf3elTb4b4b4[Te6edf3HANDLERS_PROPERTYTb4b4b4]Tb4b4b4) Tb4b4b4{
Te6edf3setTimeoutTb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3elTb4b4b4[Te6edf3HANDLERS_PROPERTYTb4b4b4]Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3entryTb4b4b4.Te6edf3srcTargetTb4b4b4.Te6edf3addEventListenerTb4b4b4(Te6edf3entryTb4b4b4.Te6edf3eventTb4b4b4, Te6edf3entryTb4b4b4.Te6edf3handlerTb4b4b4, Te6edf3entryTb4b4b4.Te6edf3captureTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}

T8b949e/**
* @param {Element} el
*/
Tff7b72export Tff7b72function Te6edf3unmountedTb4b4b4(Te6edf3elTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3handlers Tff7b72= Te6edf3elTb4b4b4[Te6edf3HANDLERS_PROPERTYTb4b4b4] Tff7b72|| Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3entry Tff7b72of Te6edf3handlersTb4b4b4) Tb4b4b4{
Te6edf3entryTb4b4b4.Te6edf3srcTargetTb4b4b4.Te6edf3removeEventListenerTb4b4b4(Te6edf3entryTb4b4b4.Te6edf3eventTb4b4b4, Te6edf3entryTb4b4b4.Te6edf3handlerTb4b4b4, Te6edf3entryTb4b4b4.Te6edf3captureTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72delete Te6edf3elTb4b4b4[Te6edf3HANDLERS_PROPERTYTb4b4b4]Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {Element} el
* @param {{ value: unknown, oldValue: unknown }} binding
*/
Tff7b72export Tff7b72function Te6edf3updatedTb4b4b4(Te6edf3elTb4b4b4, Tb4b4b4{ Te6edf3valueTb4b4b4, Te6edf3oldValue Tb4b4b4}Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3bindingsEqualTb4b4b4(Te6edf3valueTb4b4b4, Te6edf3oldValueTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3unmountedTb4b4b4(Te6edf3elTb4b4b4)Tb4b4b4;
Te6edf3beforeMountTb4b4b4(Te6edf3elTb4b4b4, Tb4b4b4{ Te6edf3value Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}

Tff7b72export Tff7b72const Te6edf3clickOutsideDirective Tff7b72= Te6edf3HAS_WINDOW
Tff7b72? Tb4b4b4{
Te6edf3beforeMountTb4b4b4,
Te6edf3updatedTb4b4b4,
Te6edf3unmountedTb4b4b4,
Tb4b4b4}
Tff7b72: Tb4b4b4{Tb4b4b4}Tb4b4b4;

Tff7b72const Te6edf3plugin Tff7b72= Tb4b4b4{
Te6edf3installTb4b4b4(Te6edf3appTb4b4b4) Tb4b4b4{
Te6edf3appTb4b4b4.Te6edf3directiveTb4b4b4(Ta5d6ff"click-outside"Tb4b4b4, Te6edf3clickOutsideDirectiveTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3directiveTff7b72: Te6edf3clickOutsideDirectiveTb4b4b4,
Tb4b4b4}Tb4b4b4;

Tff7b72export Tb4b4b4{ Te6edf3HANDLERS_PROPERTYTb4b4b4, Te6edf3DEFAULT_EVENTS Tb4b4b4}Tb4b4b4;
Tff7b72export Tff7b72default Te6edf3pluginTb4b4b4;


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────